home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / Clean 1.2.4 / StdEnv / StdOverloaded.icl < prev    next >
Encoding:
Modula Implementation  |  1996-12-23  |  2.0 KB  |  45 lines  |  [TEXT/3PRM]

  1. implementation module StdOverloaded
  2.  
  3. // ****************************************************************************************
  4. //    Concurrent Clean Standard Library Module Version 1.1
  5. //    Copyright 1995 University of Nijmegen
  6. // ****************************************************************************************
  7.  
  8. class (+)  infixl 6    a    :: !a    !a    ->    a                //    Add arg1 to arg2
  9. class (-)  infixl 6    a    :: !a    !a    ->    a                 //    Subtract arg2 from arg1
  10. class zero             a    :: a                            //    Zero (unit element for addition)
  11.  
  12. class (*)  infixl 7    a    :: !a    !a    ->    a                //    Multiply arg1 with arg2
  13. class (/)  infix  7    a    :: !a    !a    ->    a                //    Divide arg1 by arg2
  14. class one             a    :: a                            //    One (unit element for multiplication)
  15.  
  16. class (^)  infixr 8    a    :: !a    !a     ->    a                //    arg1 to the power of arg2
  17. class inc             a    :: !a         ->    a                 //    Increment with 1
  18. class dec              a    :: !a         ->    a                 //    Decrement with 1
  19. class abs              a    :: !a        ->    a                //    Absolute value
  20. class sign             a    :: !a         ->    Int                //    1 (pos value) -1 (neg value) 0 (if zero)
  21. class ~                a    :: !a         ->    a                //    -a1
  22.  
  23. class (==) infix  2    a    :: !a    !a    ->    Bool            //    True if arg1 is equal to arg2
  24.  
  25. class (<)  infix  2    a    :: !a    !a    ->    Bool             //    True if arg1 is less than arg2
  26.  
  27. class toInt            a    :: !a        ->    Int                //    Convert into Int
  28. class toChar            a    :: !a        ->    Char            //    Convert into Char
  29. class toBool            a    :: !a        ->    Bool            //    Convert into Bool
  30. class toReal            a    :: !a        ->    Real            //    Convert into Real
  31. class toString        a    :: !a        ->    {#Char}            //    Convert into String
  32.  
  33. class fromInt        a    :: !Int        -> a                //    Convert from Int
  34. class fromChar        a    :: !Char    -> a                //    Convert from Char
  35. class fromBool        a    :: !Bool    -> a                //    Convert from Bool
  36. class fromReal        a    :: !Real    -> a                //    Convert from Real
  37. class fromString        a    :: !{#Char}    -> a                //    Convert from String
  38.  
  39. class  length                m    :: !(m a) -> Int            //    Number of elements in arg
  40.                                                         //        used for list like structures (linear time)
  41.  
  42. class  (%)  infixl 9    a    :: !a !(!Int,!Int)    -> a        //    Slice a part from arg1
  43.  
  44. class (+++) infixr 5    a     :: !a    !a            -> a        //    Append args
  45.